Many of us have seen films containing remarkably realistic dinosaurs, aliens, animated toys and other fanciful creatures. Such animations are made possible by computer graphics. Using such techniques, a computer graphics artist can specify how each object should look and how it should change in appearance over time, and a computer then models the objects and displays them on a display such as your television or a computer screen. The computer takes care of performing the many tasks required to make sure that each part of the displayed image is colored and shaped just right based on the position and orientation of each object in a scene, the direction in which light seems to strike each object, the surface texture of each object, and other factors.
Because computer graphics generation is complex, computer-generated three-dimensional graphics just a few years ago were mostly limited to expensive specialized flight simulators, high-end graphics workstations and supercomputers. The public saw some of the images generated by these computer systems in movies and expensive television advertisements, but most of us couldn't actually interact with the computers doing the graphics generation. All this has changed with the availability of relatively inexpensive 3D graphics platforms such as, for example, the Nintendo 64® and various 3D graphics cards now available for personal computers. It is now possible to interact with exciting 3D animations and simulations on relatively inexpensive computer graphics systems in your home or office.
Interactive 3D computer graphics systems are often used to play video games. The “gaming experience” however typically involves more than just video content. For example, almost all gaming experiences involve audio content that accompanies the video content. The audio system described herein enables sound emitters to be placed in three-dimensional space and provides a powerful means of generating psycho-acoustic 3D sound effects with a pair of speakers. The audio system includes an audio memory that is usable, for example, to store sound samples, instrument wave tables, audio tracks and the like read from a mass storage device such as a DVD. The samples, wave tables, tracks, etc. are subsequently read out and processed by an audio digital signal processor to produce the game audio content. This content is transferred to a main memory from where it is subsequently read out for supply to a decoder and output to speakers. The separate audio memory improves the access for the audio processing circuitry to audio data by avoiding the need to contend with other resources (e.g., the graphics system) attempting to access the main system memory.
The present invention provides enhancements for the audio content of video games and, in particular, enhancements for sound effects such as reverb, chorus and delay. A conventional arrangement for providing sound effects in a stereo sound system is shown in FIG. 11A. The signal from a sound source is distributed to left and right channels L and R. The signals on the left and right channels are tapped and sent to a sound effects processor 1000 for separately providing left- and right-channel sound effects such as reverb, chorus and delay. The processed signals are added back to the left and right channels and the resultant signal is ultimately output via speakers 1002L and 1002R.
FIG. 11B shows a conventional arrangement for providing sound effects in a surround sound system. The signal from a sound source is distributed to left, right and surround channels L, R and S. There is one “auxiliary” send to effects processor 1004 summed from all the channels and one “auxiliary” return from the effects processor 1004 supplied to all the channels. Suppose, for example, that the signal from the sound source is mixed heavily to the left channel and that effects processor 1004 adds some reverb. Because of the arrangement of FIG. 11B, the reverb is centered because it is evenly distributed to all the channels. Thus, it is not possible to selectively position reverb or other effects such as delay and chorus in three-dimensional space using the arrangement of FIG. 11B.
The mixer and effects processor described below separately provide effects for signals on three or more channels such as left, right and surround channels. Therefore, effects may be selectively “positioned” in three-dimensional space. A mixer buffer stores sample values for three or more sound channels, each sound channel including a main sound component and one or more auxiliary sound components. Send paths are provided for sending the auxiliary sound components for each sound channel to the sound effects processor and return paths from the sound effects processor are provided for respectively adding the effects-processed auxiliary sound components for each channel to the corresponding main sound component. The mixer is symmetrical in that the number of channels in the mixer buffer is the same as the number of sends/returns to/from the effects processor.